// 返回当前日期时间
function nowDateTime() {
	var timestamp = Date.parse(new Date());
	var date = new Date(timestamp);
	//年
	var Y = date.getFullYear();
	//月
	var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1);
	//日
	var D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
	//时
	var h = date.getHours() < 10 ? '0' + date.getHours() : date.getHours();
	//分
	var m = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes();
	//秒
	var s = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds();
	return Y + '-' + M + '-' + D + ' ' + h + ':' + m + ':' + s;
}

// 返回当前日期
function nowDate() {
	var timestamp = Date.parse(new Date());
	var date = new Date(timestamp);
	//年
	var Y = date.getFullYear();
	//月
	var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1);
	//日
	var D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
	//时
	var h = date.getHours() < 10 ? '0' + date.getHours() : date.getHours();
	//分
	var m = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes();
	//秒
	var s = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds();
	return Y + '-' + M + '-' + D;
}

// 返回当前时间
function nowTime() {
	var timestamp = Date.parse(new Date());
	var date = new Date(timestamp);
	//年
	var Y = date.getFullYear();
	//月
	var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1);
	//日
	var D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
	//时
	var h = date.getHours() < 10 ? '0' + date.getHours() : date.getHours();
	//分
	var m = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes();
	//秒
	var s = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds();
	return h + ':' + m;
}

// 返回当前年月
function nowMonth() {
	var timestamp = Date.parse(new Date());
	var date = new Date(timestamp);
	//年
	var Y = date.getFullYear();
	//月
	var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1);
	//日
	var D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
	//时
	var h = date.getHours() < 10 ? '0' + date.getHours() : date.getHours();
	//分
	var m = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes();
	//秒
	var s = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds();
	return Y + '-' + M;
}

/**
 * 格式化时间转换为时间戳
 */
function toTimestamp(time) {
	var timestamp = Date.parse(new Date(Date.parse(time.replace(/-/g, "/"))));
	return timestamp;
}

/**
 * 时间戳转换为格式化时间
 */
function toTime(timestamp) {
	var timestamp = Date.parse(new Date(timestamp));
	var date = new Date(timestamp);
	//年
	var Y = date.getFullYear();
	//月
	var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1);
	//日
	var D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
	//时
	var h = date.getHours() < 10 ? '0' + date.getHours() : date.getHours();
	//分
	var m = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes();
	//秒
	var s = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds();

	return Y + '-' + M + '-' + D + ' ' + h + ':' + m + ':' + s;
}

/**
 * 小于10的数字，补0
 */
function fillZero(param) {
	return param < 10 ? '0' + param : param;
}

/**
 * 防抖函数 防止多次点击执行多次方法，可用于防重复提交
 */
function debounce(fn, gapTime) {
	if (gapTime == null || gapTime == undefined) {
		gapTime = 2000
	}

	let _lastTime = null

	// 返回新的函数
	return function() {
		let _nowTime = +new Date()
		if (_nowTime - _lastTime > gapTime || !_lastTime) {
			fn.apply(this, arguments) //将this和参数传给原函数
			_lastTime = _nowTime
		}
	}
}


module.exports = {
	nowDateTime: nowDateTime,
	nowDate: nowDate,
	nowTime: nowTime,
	nowMonth: nowMonth,
	toTimestamp: toTimestamp,
	toTime: toTime,
	fillZero: fillZero,
	debounce
}
